package com.hs.room.model.sys


import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.Ignore
import androidx.room.Index
import androidx.room.PrimaryKey

/**
 * 用户
 */
@Entity(
    tableName = "sys_user",
    indices = [
        Index(value = ["account"], unique = true)
    ]
)
data class SysUser(
    @PrimaryKey(autoGenerate = true)
    val id: Long? = null,
    // 姓名，必要参数
    @ColumnInfo
    val userName: String,
    // 年龄，可设置默认值，这里设为 0
    @ColumnInfo
    val age: Int? = 0,
    // 1男 2女
    @ColumnInfo
    val sex: Int? = 1,
    @ColumnInfo
    val email: String? = "",
    @ColumnInfo
    val phone: String? = "",
    // 头像保存的地址
    @ColumnInfo
    val avatar: String? = "",
    // 登录的账号，可设置默认值，这里为空字符串
    @ColumnInfo
    val account: String,
    // 密码，必要参数
    @ColumnInfo
    val password: String,
    // 角色名称，可设置默认值，这里为空字符串
    @ColumnInfo
    val roleName: String? = "",
    // 角色 ID，可设置默认值，这里为 0
    @ColumnInfo
    val roleCode: String? = "",
    // 是否修改初始化密码，可设置默认值，这里为 false
    @ColumnInfo
    val initPasswordFlag: Boolean? = false,
    // 是否启用，可设置默认值，这里为 true
    @ColumnInfo
    val enable: Boolean? = true,
    // 部门名称，可设置默认值，这里为空字符串
    @ColumnInfo
    val deptName: String? = "",
    // 部门编码-为什么不用ID 因为ID经常会变 不利于迁移数据，
    @ColumnInfo
    val deptCode: String? = "",
    // 职位，可设置默认值，这里为空字符串
    @ColumnInfo
    val appointmentName: String? = "",
    // 创建时间，可设置默认值，这里为空字符串
    @ColumnInfo
    val createTime: String? = "",
    // 更新时间，可设置默认值，这里为空字符串
    @ColumnInfo
    val updateTime: String? = "",
    // 创建时间戳，可设置默认值，这里为 0
    @ColumnInfo
    val createTimestamp: Long? = 0,
    // 更新时间戳，可设置默认值，这里为 0
    @ColumnInfo
    val updateTimestamp: Long? = 0,
    @ColumnInfo
    val createBy: String? = "",
    @ColumnInfo
    val updateBy: String? = "",
    // 是否是系统的，初始化的标志 这个有值 不能删除
    @ColumnInfo
    val sysTemNo: String? = "",
    // 指纹Id
    @ColumnInfo
    val featureId: Int? = 0,
    // 人脸Id
    @ColumnInfo
    val faceId: Int? = 0,
    @ColumnInfo
    val screenshot: String?,//登录时抓拍
    @ColumnInfo
    val loginType: Int = 0//登录类型 0人脸、1指纹、2密码
)

